import request from '@/config/axios'

// ERP 类别设定 VO
export interface CategorySettingVO {
  id: number // 主键ID
  parentId: number // 父级ID，0表示顶级类别
  name: string // 名称
  alias?: string // 别名
  code?: string // 编码
  type: string // 类型：CATEGORY-主类别，ITEM-子项目
  sort: number // 排序
  status: number // 状态：0-禁用，1-启用
  remark?: string // 备注
  creator?: string // 创建者
  createTime: Date // 创建时间
  updater?: string // 更新者
  updateTime: Date // 更新时间
  deleted: boolean // 是否删除
  tenantId: number // 租户编号
}

// ERP 类别设定 API
export const CategorySettingApi = {
  // 查询类别设定分页
  getCategorySettingPage: async (params: any) => {
    return await request.get({ url: `/erp/category-setting/page`, params })
  },

  // 查询类别设定列表
  getCategorySettingList: async (params?: any) => {
    return await request.get({ url: `/erp/category-setting/list`, params })
  },

  // 查询类别设定详情
  getCategorySetting: async (id: number) => {
    return await request.get({ url: `/erp/category-setting/get?id=` + id })
  },

  // 新增类别设定
  createCategorySetting: async (data: CategorySettingVO) => {
    return await request.post({ url: `/erp/category-setting/create`, data })
  },

  // 修改类别设定
  updateCategorySetting: async (data: CategorySettingVO) => {
    return await request.put({ url: `/erp/category-setting/update`, data })
  },

  // 删除类别设定
  deleteCategorySetting: async (id: number) => {
    return await request.delete({ url: `/erp/category-setting/delete?id=` + id })
  },

  // 批量删除类别设定
  deleteCategorySettings: async (ids: number[]) => {
    return await request.delete({ url: `/erp/category-setting/batch-delete`, data: { ids } })
  },

  // 获得所有主类别
  getCategories: async () => {
    return await request.get({ url: `/erp/category-setting/categories` })
  },

  // 根据父级ID获得子项目列表
  getItemsByParentId: async (parentId: number) => {
    return await request.get({ url: `/erp/category-setting/items?parentId=` + parentId })
  },

  // 导出类别设定 Excel
  exportCategorySetting: async (params) => {
    return await request.download({ url: `/erp/category-setting/export-excel`, params })
  }
}


